package com.cs.paoyer.administration.business;

import com.cs.paoyer.administration.business.model.ContractVO;
import java.util.Vector;
//import javax.ejb.EJBLocalObject;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
import java.util.Collection;

import com.cs.paoyer.administration.business.model.FDClassVO;
import com.cs.paoyer.administration.business.model.FDTypeVO;
import com.cs.paoyer.administration.business.model.UserVO;
import com.cs.paoyer.administration.business.model.ApplicationVO;
import com.cs.paoyer.administration.business.model.UserGroupVO;
import com.cs.paoyer.administration.business.model.OptionVO;
import com.cs.paoyer.administration.business.model.ProgramVO;
import com.cs.paoyer.administration.business.model.ProgramParameterVO;
import com.cs.paoyer.administration.business.model.UserGroupOptionVO;
import com.cs.paoyer.administration.business.model.ApplicationUserVO;
import com.cs.paoyer.administration.business.model.FlexValueVO;
import com.cs.paoyer.administration.business.model.FDVO;
import com.cs.paoyer.administration.business.model.AuthorizedByBranchVO;
import com.cs.paoyer.administration.business.model.WarehouseByBranchVO;
import com.cs.paoyer.administration.business.model.CostCenterByAuthorizedVO;
import com.cs.paoyer.common.exception.UserException;
import com.cs.paoyer.common.exception.SystemException;


public interface AdministrationFacade extends EJBObject 
{
      public String getMenu(String strUserGroup, String strPath)
             throws RemoteException, UserException, SystemException;
             
      public Vector getResources(UserVO user)
             throws RemoteException, UserException, SystemException;
      
      public UserVO userGroup(UserVO user)
             throws RemoteException, UserException, SystemException;

      
      public UserVO authenticateUser(UserVO user)
             throws RemoteException, UserException, SystemException;

			public Collection findUserByCriterea(UserVO criterea)
             throws RemoteException, UserException, SystemException;
             
      public boolean createUser( UserVO user )
             throws RemoteException, UserException, SystemException;

			public boolean updateUser(UserVO user)
             throws RemoteException, UserException, SystemException;

      public boolean deleteUser(UserVO user)
             throws RemoteException, UserException, SystemException;


      public ApplicationVO createApplication( ApplicationVO application )
             throws RemoteException, UserException, SystemException;

      public Collection findApplicationByCriterea(ApplicationVO criterea)
             throws RemoteException, UserException, SystemException;

			public int updateApplication(ApplicationVO criterea)
             throws RemoteException, UserException, SystemException;

      public int deleteApplication(ApplicationVO criterea)
             throws RemoteException, UserException, SystemException;

				public UserGroupVO createUserGroup(UserGroupVO userGroup)
             throws RemoteException, UserException, SystemException;
      public Collection findUserGroupByCriterea(UserGroupVO userGroup)
             throws RemoteException, UserException, SystemException;
      public UserGroupVO updateUserGroup(UserGroupVO userGroup)
             throws RemoteException, UserException, SystemException;
      public void deleteUserGroup(UserGroupVO userGroup)
             throws RemoteException, UserException, SystemException;


      public OptionVO createOption(OptionVO option)
             throws RemoteException, UserException, SystemException;
      public Collection findOptionByCriterea(OptionVO option)
             throws RemoteException, UserException, SystemException;
      public OptionVO updateOption(OptionVO option)
             throws RemoteException, UserException, SystemException;
      public void deleteOption(OptionVO option)
             throws RemoteException, UserException, SystemException;


      public ProgramVO createProgram(ProgramVO program)
             throws RemoteException, UserException, SystemException;
      public Collection findProgramByCriterea(ProgramVO program)
             throws RemoteException, UserException, SystemException;
      public ProgramVO updateProgram(ProgramVO program)
             throws RemoteException, UserException, SystemException;
      public void deleteProgram(ProgramVO program)
             throws RemoteException, UserException, SystemException;


      public ProgramParameterVO createProgramParameter(ProgramParameterVO programParameter)
             throws RemoteException, UserException, SystemException;
      public Collection findProgramParameterByCriterea(ProgramParameterVO programParameter)
             throws RemoteException, UserException, SystemException;
      public ProgramParameterVO updateProgramParameter(ProgramParameterVO programParameter)
             throws RemoteException, UserException, SystemException;
      public void deleteProgramParameter(ProgramParameterVO programParameter)
             throws RemoteException, UserException, SystemException;




      public UserGroupOptionVO createUserGroupOption(UserGroupOptionVO userGroupOption)
             throws RemoteException, UserException, SystemException;
      public Collection findUserGroupOptionByCriterea(UserGroupOptionVO userGroupOption)
             throws RemoteException, UserException, SystemException;
      public UserGroupOptionVO updateUserGroupOption(UserGroupOptionVO userGroupOption)
             throws RemoteException, UserException, SystemException;
      public void deleteUserGroupOption(UserGroupOptionVO userGroupOption)
             throws RemoteException, UserException, SystemException;
      public Collection findNotAsociatedOptionByCriterea(UserGroupOptionVO userGroupOption)
             throws RemoteException, UserException, SystemException;
      public boolean asociateOptionToUserGroup(UserGroupOptionVO userGroupOption)
             throws RemoteException, UserException, SystemException;


      public ApplicationUserVO createApplicationUser(ApplicationUserVO applicationUser)
             throws RemoteException, UserException, SystemException;
      public Collection findApplicationUserByCriterea(ApplicationUserVO applicationUser)
             throws RemoteException, UserException, SystemException;
             
      public Collection findUserNotAsociatedByCriterea(ApplicationUserVO criterea)
             throws RemoteException, UserException, SystemException;       
      public ApplicationUserVO updateApplicationUser(ApplicationUserVO applicationUser)
             throws RemoteException, UserException, SystemException;
      public void deleteApplicationUser(ApplicationUserVO applicationUser)
             throws RemoteException, UserException, SystemException;


     public FlexValueVO createFlexValue(FlexValueVO flexValue)
             throws RemoteException, UserException, SystemException;
      public Collection findFlexValueByCriterea(FlexValueVO flexValue)
             throws RemoteException, UserException, SystemException;
      public boolean updateFlexValue(FlexValueVO flexValue)
             throws RemoteException, UserException, SystemException;
      public boolean deleteFlexValue(FlexValueVO flexValue)
             throws RemoteException, UserException, SystemException;


  public Collection findFlexValueTypeByCriterea(FlexValueVO criterea)
             throws RemoteException, UserException, SystemException;
  public FlexValueVO createFlexValueType( FlexValueVO flexValueType )
             throws RemoteException, UserException, SystemException;
  public boolean updateFlexValueType( FlexValueVO flexValueType )
             throws RemoteException, UserException, SystemException;
	public boolean deleteFlexValueType( FlexValueVO flexValueType )  
             throws RemoteException, UserException, SystemException;


		  

		  //Consultas
			public Collection findInventoryByCriterea(FDVO criterea)
             throws RemoteException, UserException, SystemException;

     public Collection findContractByCriterea(ContractVO criterea)
             throws RemoteException, UserException, SystemException;

     public Collection findAuthorizedBranchByCriterea(AuthorizedByBranchVO authorizedByBranch)


             throws RemoteException, UserException, SystemException;


      public Collection findWarehouseBranchByCriterea(WarehouseByBranchVO warehouseByBranch)
             throws RemoteException, UserException, SystemException;


      public Collection findCostCenterAuthorizedByCriterea(CostCenterByAuthorizedVO costCenterByAuthorized)
             throws RemoteException, UserException, SystemException;

     public Collection findFDClassByCriterea(FDClassVO fdClass)
             throws RemoteException, UserException, SystemException;

		  
      public Collection findFDTypeByCriterea(FDTypeVO fdType)
             throws RemoteException, UserException, SystemException;


      public Collection findFDHistoryByCriterea(FDVO fdVO)
             throws RemoteException, UserException, SystemException;

		  


}
